// 第一题
// 随机生成一个长度为10的整数类型数组
// 其中整数值在0-99中随机 例如[4, 2, 20,12, 13, 13, 19, 24, 34]
// 将其排列成一个新数组，要求新数组形式如下
// [[2, 4], [12, 13, 19], [20, 24], [34]]


// 思路分析
// 1、生成一个长度为10的整数值的数组
    // 生成固定长度数组的方式：[...Array(10).keys()]、Array(10).fill('')、Array.from({length: 10}, () => {})
    // 生成随机区间范围内的整数（以5-10为例子）： Math.random()*(10-5 + 1)  0-6 => Math.random()*(10-5 + 1) + 5 5-11 => Math.floor(Math.random()*(10-5 + 1) + 5)
// 2、数组去重复：[...new Set([...])]
// 3、数组排序  Array.sort()
// 4、根据数学思路分组存储：与10相除 0.2  1.2  2.4 3.4

// 1、生成一个长度为10的整数值的数组
function randomNum(min, max) {
    return Math.floor(Math.random()*(max - min + 1)+5);
};

let randomArr = Array.from({length: 10}, () => randomNum(0, 99));
console.log('randomArr:', randomArr);


// 2、数组去重复：[...new Set([...])]
randomArr = [...new Set(randomArr)];

// 3、数组排序  Array.sort()
function sortfn(a, b) {
    return a - b;
}
Array.prototype.sort.apply(randomArr, sortfn);

// 4、根据数学思路分组存储：与10相除 0.2  1.2  2.4 3.4
let map = new Map();
for(let i = 0; i < randomArr.length; i++) {
    let key = Math.floor(randomArr[i] / 10);
    if (!map.has(key)) {
        map.set(key, []);
    };
    let arr = map.get(key);
    arr.push(randomArr[i]);
    map.set(key, arr);
};
let result = [];
map.forEach(element => {
    result.push(element);
});
console.log('resMap:', map, result);
